home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN002
- Boolean BOOLEAN003
- Boolean BOOLEAN004
- Integer TINTEGER004(2)
- Integer TINTEGER005(2)
- Integer INTEGER006
- Integer INTEGER007
- Integer INTEGER008
- Integer INTEGER009
- Integer INTEGER010
- Integer INTEGER011
- Integer INTEGER012
- Integer INTEGER013
- Integer INTEGER014
- Integer INTEGER015
- Integer INTEGER016
- Integer INTEGER017
- Integer INTEGER018
- String TSTRING008(12)
- String TSTRING009(6)
- String STRING010
- String STRING011
- String STRING012
- String TSTRING013(3)
- String STRING014
- String STRING015
-
- ;------------------------------------------------------------------------------
-
- If (AnsiOn() == 0) Then
- Print "@X07@CLS@"
- Newline
- PrintLn "USER MAiNTENANCE v1.o CAN'T RUN WiTHOUT ANSi !"
- Newline
- End
- Endif
- TSTRING008(1) = " GROUP "
- TSTRING008(2) = " PASSWORD "
- TSTRING008(3) = " SEC. LEVEL "
- TSTRING008(4) = " DATA # "
- TSTRING008(5) = " VOiCE # "
- TSTRING008(6) = " EXP. DATE "
- TSTRING008(7) = " EXP. SEC. "
- TSTRING008(8) = " EXPERT MODE "
- TSTRING008(9) = " PAGE LENGTH "
- TSTRING008(10) = " PROTOCOL "
- TSTRING008(11) = " COMMENT #1 "
- TSTRING008(12) = " COMMENT #2 "
- TSTRING009(1) = " EDiT USER "
- TSTRING009(2) = " NEXT USER "
- TSTRING009(3) = " PREViOUS USER "
- TSTRING009(4) = " DELETE USER "
- TSTRING009(5) = " FiND USER "
- TSTRING009(6) = " QUiT! "
- INTEGER016 = 6
- INTEGER009 = 12
- INTEGER007 = 1
- INTEGER006 = 1
- INTEGER008 = INTEGER006
- TINTEGER004(1) = 4
- TINTEGER005(1) = 6
- TSTRING013(1) = "@X07"
- TSTRING013(2) = "@X1F"
- TSTRING013(3) = "@X09"
- StartDisp 1
- Print "@X07@CLS@"
- DispFile PPEPath() + "SCUMUSER.PCB", 0
- GetUser
- INTEGER014 = U_RecNum(U_Name())
- FReAltUser
- Gosub LABEL031
- Gosub LABEL030
- INTEGER018 = INTEGER014
- STRING014 = U_Name()
- Gosub LABEL020
- :LABEL001
- INTEGER009 = 6
- Gosub LABEL023
- If (STRING011 <> "SELECT") Then
- INTEGER008 = INTEGER006
- Gosub LABEL020
- Else
- BOOLEAN002 = 0
- Gosub LABEL021
- Goto LABEL002
- Endif
- Goto LABEL001
- :LABEL002
- If (INTEGER008 == 1) Then
- INTEGER007 = 1
- INTEGER006 = 1
- INTEGER009 = 12
- Gosub LABEL022
- :LABEL003
- Gosub LABEL023
- If (STRING011 <> "SELECT") Then
- If (STRING011 == Chr(27)) Then
- BOOLEAN002 = 1
- Gosub LABEL021
- BOOLEAN002 = 0
- Gosub LABEL020
- INTEGER006 = 1
- Goto LABEL001
- Endif
- Gosub LABEL022
- Goto LABEL004
- Endif
- Gosub LABEL007
- :LABEL004
- Goto LABEL003
- Endif
- If (INTEGER008 == 2) Then
- GetAltUser INTEGER014 + 1
- If (CurUser() == -1) Then
- GetAltUser 1
- Endif
- Gosub LABEL034
- Gosub LABEL031
- Gosub LABEL020
- INTEGER006 = 2
- Goto LABEL001
- Endif
- If (INTEGER008 == 3) Then
- If (U_RecNum(U_Name()) == 1) Then
- GetAltUser 1
- Goto LABEL005
- Endif
- GetAltUser INTEGER014 - 1
- Gosub LABEL034
- Gosub LABEL031
- :LABEL005
- Gosub LABEL020
- INTEGER006 = 3
- Goto LABEL001
- Endif
- If (INTEGER008 == 4) Then
- If (U_Sec > 0) Then
- U_Sec = 0
- DelUser
- AnsiPos 20, 8
- Print TSTRING013(3) + "0 @X08"
- PutUser
- Endif
- INTEGER006 = 4
- Gosub LABEL020
- Goto LABEL001
- Endif
- If (INTEGER008 == 5) Then
- Gosub LABEL034
- INTEGER011 = 20
- INTEGER012 = 4
- INTEGER013 = 25
- INTEGER015 = 1
- STRING012 = ""
- STRING010 = ""
- Gosub LABEL032
- If (STRING010 == "") Then
- Gosub LABEL031
- Goto LABEL006
- Endif
- INTEGER017 = INTEGER014
- INTEGER014 = 0
- BOOLEAN003 = 0
- While (BOOLEAN003 == 0) Do
- Inc INTEGER014
- GetAltUser INTEGER014
- STRING014 = U_Name()
- AnsiPos 62, 4
- Print TSTRING013(3), INTEGER014, "@X07 "
- If (CurUser() == -1) Then
- BOOLEAN003 = 1
- Endif
- INTEGER010 = 0
- INTEGER010 = InStr(Upper(STRING014), Upper(STRING010))
- If (INTEGER010 > 0) Then
- If (BOOLEAN003 == 0) Then
- BOOLEAN004 = 1
- BOOLEAN003 = 1
- Endif
- Endif
- EndWhile
- If (BOOLEAN004 == 1) Then
- Gosub LABEL034
- Gosub LABEL031
- Goto LABEL006
- Endif
- GetAltUser INTEGER017
- Gosub LABEL034
- Gosub LABEL031
- :LABEL006
- INTEGER006 = 5
- Gosub LABEL020
- Goto LABEL001
- Endif
- If (INTEGER008 == 6) Then
- Print "@X07@CLS@"
- PrintLn "@X01 φ @X0BSCUM '94 @X01φ @X0BUSER MAiNTENANCE @X03v@X0B1@X03.@X0Bo @X01φ @X0BCODED BY@X03: @X0BJoLLY RoGeR @X01φ @X0BSCUM '94 @X01φ"
- Newline
- End
- Endif
- Goto LABEL001
- :LABEL007
- If (INTEGER006 == 1) Then
- INTEGER011 = 20
- INTEGER012 = 6
- INTEGER013 = 24
- INTEGER015 = 1
- STRING012 = U_City
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_City = STRING012
- Goto LABEL008
- Endif
- U_City = STRING010
- :LABEL008
- PutUser
- Endif
- If (INTEGER006 == 2) Then
- INTEGER011 = 20
- INTEGER012 = 7
- INTEGER013 = 12
- INTEGER015 = 3
- STRING012 = U_Pwd
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_Pwd = STRING012
- Goto LABEL009
- Endif
- U_Pwd = STRING010
- :LABEL009
- PutUser
- Endif
- If (INTEGER006 == 3) Then
- INTEGER011 = 20
- INTEGER012 = 8
- INTEGER013 = 3
- INTEGER015 = 4
- STRING012 = U_Sec
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_Sec = STRING012
- Goto LABEL010
- Endif
- U_Sec = STRING010
- :LABEL010
- PutUser
- Endif
- If (INTEGER006 == 4) Then
- INTEGER011 = 20
- INTEGER012 = 9
- INTEGER013 = 13
- INTEGER015 = 2
- STRING012 = U_BDPhone
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_BDPhone = STRING012
- Goto LABEL011
- Endif
- U_BDPhone = STRING010
- :LABEL011
- PutUser
- Endif
- If (INTEGER006 == 5) Then
- INTEGER011 = 20
- INTEGER012 = 10
- INTEGER013 = 13
- INTEGER015 = 2
- STRING012 = U_HVPhone
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_HVPhone = STRING012
- Goto LABEL012
- Endif
- U_HVPhone = STRING010
- :LABEL012
- PutUser
- Endif
- If (INTEGER006 == 6) Then
- INTEGER011 = 20
- INTEGER012 = 11
- INTEGER013 = 6
- INTEGER015 = 2
- STRING012 = U_ExpDate
- STRING010 = ""
- Gosub LABEL032
- If (STRING010 == "") Then
- U_ExpDate = STRING012
- Goto LABEL013
- Endif
- U_ExpDate = STRING010
- :LABEL013
- PutUser
- STRING010 = U_ExpDate
- Gosub LABEL033
- Endif
- If (INTEGER006 == 7) Then
- INTEGER011 = 20
- INTEGER012 = 12
- INTEGER013 = 3
- INTEGER015 = 4
- STRING012 = U_ExpSec
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_ExpSec = STRING012
- Goto LABEL014
- Endif
- U_ExpSec = STRING010
- :LABEL014
- PutUser
- Endif
- If (INTEGER006 == 8) Then
- INTEGER011 = 20
- INTEGER012 = 13
- If (U_Expert == 1) Then
- STRING010 = "NO "
- U_Expert = 0
- Goto LABEL015
- Endif
- STRING010 = "YES"
- U_Expert = 1
- :LABEL015
- Gosub LABEL033
- PutUser
- Endif
- If (INTEGER006 == 9) Then
- INTEGER011 = 20
- INTEGER012 = 14
- INTEGER013 = 2
- INTEGER015 = 2
- STRING012 = U_PageLen
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_PageLen = STRING012
- Goto LABEL016
- Endif
- U_PageLen = STRING010
- :LABEL016
- PutUser
- Endif
- If (INTEGER006 == 10) Then
- INTEGER011 = 20
- INTEGER012 = 15
- INTEGER013 = 1
- INTEGER015 = 5
- STRING012 = U_Trans
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_Trans = STRING012
- Goto LABEL017
- Endif
- U_Trans = STRING010
- :LABEL017
- PutUser
- Endif
- If (INTEGER006 == 11) Then
- INTEGER011 = 20
- INTEGER012 = 16
- INTEGER013 = 30
- INTEGER015 = 1
- STRING012 = U_Cmnt1
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_Cmnt1 = STRING012
- Goto LABEL018
- Endif
- U_Cmnt1 = STRING010
- :LABEL018
- PutUser
- Endif
- If (INTEGER006 == 12) Then
- INTEGER011 = 20
- INTEGER012 = 17
- INTEGER013 = 30
- INTEGER015 = 1
- STRING012 = U_Cmnt2
- STRING010 = ""
- Gosub LABEL032
- Gosub LABEL033
- If (STRING010 == "") Then
- U_Cmnt2 = STRING012
- Goto LABEL019
- Endif
- U_Cmnt2 = STRING010
- :LABEL019
- PutUser
- Endif
- AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
- Return
- :LABEL020
- AnsiPos 7, 19
- If (INTEGER008 == 1) Then
- Print TSTRING013(2) + TSTRING009(1) + TSTRING013(1) + TSTRING009(2) + TSTRING013(1) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
- Endif
- If (INTEGER008 == 2) Then
- Print TSTRING013(1) + TSTRING009(1) + TSTRING013(2) + TSTRING009(2) + TSTRING013(1) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
- Endif
- If (INTEGER008 == 3) Then
- Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING013(2) + TSTRING009(3) + TSTRING013(1) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
- Endif
- If (INTEGER008 == 4) Then
- Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING013(2) + TSTRING009(4) + TSTRING013(1) + TSTRING009(5) + TSTRING009(6)
- Endif
- If (INTEGER008 == 5) Then
- Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING009(4) + TSTRING013(2) + TSTRING009(5) + TSTRING013(1) + TSTRING009(6)
- Endif
- If (INTEGER008 == 6) Then
- Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING013(2) + TSTRING009(6) + TSTRING013(1)
- Endif
- Return
- :LABEL021
- If (BOOLEAN002 == 1) Then
- AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
- Print TSTRING013(1) + TSTRING008(INTEGER006)
- Else
- AnsiPos 7, 19
- Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
- Endif
- Return
- :LABEL022
- AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER007 - 1
- Print TSTRING013(1) + TSTRING008(INTEGER007)
- AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
- Print TSTRING013(2) + TSTRING008(INTEGER006)
- AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
- Return
- :LABEL023
- STRING010 = ""
- STRING011 = ""
- While (STRING010 == "") Do
- STRING010 = Inkey()
- EndWhile
- If (Left(STRING010, 2) == "UP") Then
- If (INTEGER006 > 1) Then
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER007 - 1
- STRING011 = "UP"
- Goto LABEL024
- Endif
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER009
- Endif
- :LABEL024
- If (Left(STRING010, 4) == "HOME") Then
- If (INTEGER006 > 1) Then
- INTEGER007 = INTEGER006
- INTEGER006 = 1
- STRING011 = "UP"
- Endif
- Endif
- If (Left(STRING010, 4) == "LEFT") Then
- If (INTEGER006 > 1) Then
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER007 - 1
- STRING011 = "UP"
- Goto LABEL025
- Endif
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER009
- Endif
- :LABEL025
- If (Upper(STRING010) == "A") Then
- If (INTEGER006 > 1) Then
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER007 - 1
- STRING011 = "UP"
- Goto LABEL026
- Endif
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER009
- Endif
- :LABEL026
- If (Left(STRING010, 4) == "DOWN") Then
- If (INTEGER006 < INTEGER009) Then
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER007 + 1
- STRING011 = "DOWN"
- Goto LABEL027
- Endif
- INTEGER007 = INTEGER006
- INTEGER006 = 1
- Endif
- :LABEL027
- If (Left(STRING010, 3) == "END") Then
- If (INTEGER006 < INTEGER009) Then
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER009
- STRING011 = "DOWN"
- Endif
- Endif
- If (Left(STRING010, 5) == "RIGHT") Then
- If (INTEGER006 < INTEGER009) Then
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER007 + 1
- STRING011 = "DOWN"
- Goto LABEL028
- Endif
- INTEGER007 = INTEGER006
- INTEGER006 = 1
- Endif
- :LABEL028
- If (Upper(STRING010) == "Z") Then
- If (INTEGER006 < INTEGER009) Then
- INTEGER007 = INTEGER006
- INTEGER006 = INTEGER007 + 1
- STRING011 = "DOWN"
- Goto LABEL029
- Endif
- INTEGER007 = INTEGER006
- INTEGER006 = 1
- Endif
- :LABEL029
- If (STRING010 == Chr(13)) Then
- STRING011 = "SELECT"
- Endif
- If (Left(STRING010, 5) == "ENTER") Then
- STRING011 = "SELECT"
- Endif
- If (Left(STRING010, 6) == "RETURN") Then
- STRING011 = "SELECT"
- Endif
- If (STRING011 == "") Then
- STRING011 = STRING010
- Endif
- Return
- :LABEL030
- For INTEGER010 = 6 To 17
- AnsiPos 4, INTEGER010
- Print TSTRING013(1) + TSTRING008(INTEGER010 - 5)
- Next
- :LABEL031
- INTEGER014 = U_RecNum(U_Name())
- AnsiPos 20, 4
- Print TSTRING013(3) + U_Name()
- AnsiPos 62, 4
- Print TSTRING013(3), INTEGER014, " "
- AnsiPos 62, 5
- Print TSTRING013(3) + "@NODE@"
- AnsiPos 20, 6
- Print TSTRING013(3) + U_City
- AnsiPos 20, 7
- Print TSTRING013(3) + U_Pwd
- AnsiPos 20, 8
- Print TSTRING013(3) + U_Sec
- AnsiPos 20, 9
- Print TSTRING013(3) + U_BDPhone
- AnsiPos 20, 10
- Print TSTRING013(3) + U_HVPhone
- AnsiPos 20, 11
- Print TSTRING013(3), U_ExpDate
- AnsiPos 20, 12
- Print TSTRING013(3) + U_ExpSec
- AnsiPos 20, 13
- If (U_Expert == 1) Then
- Print TSTRING013(3) + "YES"
- Else
- Print TSTRING013(3) + "NO "
- Endif
- AnsiPos 20, 14
- Print TSTRING013(3) + U_PageLen
- AnsiPos 20, 15
- Print TSTRING013(3) + U_Trans
- AnsiPos 20, 16
- Print TSTRING013(3) + U_Cmnt1
- AnsiPos 20, 17
- Print TSTRING013(3) + U_Cmnt2
- Return
- :LABEL032
- AnsiPos INTEGER011, INTEGER012
- Print "@X07" + Space(INTEGER013 + 2)
- AnsiPos INTEGER011, INTEGER012
- If (INTEGER015 == 1) Then
- InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Ascii(), 0
- Endif
- If (INTEGER015 == 2) Then
- InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Num() + ".-", 0
- Endif
- If (INTEGER015 == 3) Then
- InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Pwd(), 0
- Endif
- If (INTEGER015 == 4) Then
- InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Num(), 0
- Endif
- If (INTEGER015 == 5) Then
- InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Ascii(), 8
- Endif
- Return
- :LABEL033
- AnsiPos INTEGER011, INTEGER012
- If (STRING010 == "") Then
- Print TSTRING013(3) + STRING012
- Else
- Print TSTRING013(3) + STRING010
- Endif
- Return
- :LABEL034
- For INTEGER010 = 4 To 17
- AnsiPos 20, INTEGER010
- Print "@X07" + Space(28)
- Next
- Return
- STRING015 = "■■■ A JoLLY RoGeR PPE - SCuM '94 PPE Division ■■■"
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 2 End
- ; 120 Goto
- ; 204 Let
- ; 36 Print
- ; 2 PrintLn
- ; 80 If
- ; 1 DispFile
- ; 1 StartDisp
- ; 1 GetUser
- ; 13 PutUser
- ; 1 DelUser
- ; 5 InputStr
- ; 50 Gosub
- ; 9 Return
- ; 1 Inc
- ; 3 Newline
- ; 29 AnsiPos
- ; 6 GetAltUser
- ; 1 FReAltUser
- ;
- ;
- ; ■ Functions used :
- ;
- ; 2 -
- ; 91 +
- ; 10 -
- ; 66 ==
- ; 2 <>
- ; 6 <
- ; 2 <=
- ; 6 >
- ; 4 >=
- ; 80 !
- ; 4 &&
- ; 2 ||
- ; 4 Upper()
- ; 8 Left()
- ; 2 Space()
- ; 2 Chr()
- ; 1 InStr()
- ; 6 U_Name()
- ; 1 Inkey()
- ; 1 Mask_Pwd()
- ; 2 Mask_Num()
- ; 2 Mask_Ascii()
- ; 1 PPEPath()
- ; 1 AnsiOn()
- ; 3 U_RecNum()
- ; 2 CurUser()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : WRDH
- ;
- ; W - Write user ■ 5
- ; Program writes a user record. Although this may be normal for a
- ; User Editor, it may also be a way to modify an account level.
- ; ■ Search for : PUTUSER
- ;
- ; R - Read user ■ 5
- ; User records are read, this may signify that someone wants to get
- ; various informations about a user (for example his password), but
- ; this may also be normal for a program accessing user records (for
- ; example a User Editor)
- ; ■ Search for : GETALTUSER
- ;
- ; D - Delete user ■ 5
- ; Program is deleting account(s)... Check!
- ; ■ Search for : DELUSER
- ;
- ; H - Read Password or Password History ■ 5
- ; Program is reading the user's password or last password history
- ; This may be ok for a password manager, but it is very suspect. Check!
- ; ■ Search for : U_PWDHIST, U_PWD
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 2 For/Next
- ; 2 While/EndWhile
- ; 76 If/Then or If/Then/Else
- ; 0 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-